All Questions
22 questions
2votes
3answers
284views
How do I model this scenario so that it adheres to OOP principles?
I have a Slide class with subclasses referring to the different types of slides (IntroSlide, SummarySlide, etc.): abstract class Slide { String slideType; final String title; final String ...
0votes
3answers
977views
How to handle subclasses needing different method signatures for the overriden function?
I have an abstract class that represents chess pieces, it has an abstract method isMoveValid(Square futurePosition, PieceColor color) which checks if the piece moving to that square is valid or not, ...
2votes
1answer
334views
Composition or Inheritance for classes with almost similar implementations but different input and outputs for methods?
I have the following classes, which have quite similar method implementations. Only the classes' method inputs and outputs seem to be of different types. When I put it like this, it sounds like a case ...
-4votes
1answer
1kviews
What's the best way to design a state machine with different object inheritance
I have a class A and class B, both derive from the same parent class. Each object has a state machine inside it that defines it's behaviour. The behaviour is different though depending on if the ...
1vote
3answers
396views
subclass with no logic of abstract class
I have a class named Change which should be abstract and have some basic methods. I have classes Insert, Update and Delete that extends Change. In the case of Insert, Update I just use extend and add ...
2votes
4answers
3kviews
Abstract base class with only protected members
Often, I'll abstract common logic out of a class by creating an abstract base class with only protected members. For example: class Base { protected: void foo() { ... } std::map<KeyType, ...
4votes
4answers
3kviews
Composition over Inheritance, why not both?
I have this out of context scenario, where what I think is good practices leaves me in a situation of both implementing an interface, and using composition to do the implementation. Imagine the ...
4votes
2answers
2kviews
Inheritance and factory together?
I have a hierarchical data model and am trying to implement their CRUD operations in my Web Application. Currently I have code inheritance for CRUD operations of my entities (resources) as follows: ...
1vote
1answer
1kviews
Inheritance is better or composition design pattern in this scenario?
Design and implement Cash Register: Given a number of items you will be required to calculate the total bill. Items are charged for in a couple of different ways: A given price for each item, e.g. ...
-1votes
2answers
229views
Per my design requirements, does this design hierarchy seem reasonable?
Background Construction Note that I am using C# here, but it may not be necessary to provide input to my conceptual questions about design. Consider the following design methodology... I work at a ...
13votes
4answers
4kviews
Parallel hierarchies - partly same, partly different
There are quite a few similar questions out there 1, 2, 3, 4, but non seems exactly the case in this question, nor do the solutions seem optimal. This is a general OOP question, assuming polymorphism,...
1vote
1answer
551views
Design Pattern - Adding features to a class
I'm finding myself unable to solve a design problem. For the sake of my simplicity, I'm going to use C# (Web API). Let's say I have an abstract class RestController: public abstract class ...
0votes
4answers
722views
Fixing class Hierarchy design mistakes due to incorrect inheritance
I have a code like this. My derived class man, may not properly have a member function declared pure virtual higher up the hierarchy. eg. WagTail here class mammal{ public: virtual void WagTail() ...
37votes
11answers
7kviews
Constructor-only subclasses: Is this an anti-pattern?
I was having a discussion with a co-worker, and we ended up having conflicting intuitions about the purpose of subclassing. My intuition is that if a primary function of a subclass is to express a ...
6votes
2answers
4kviews
How to replace inheritance with composition in this case?
I've recently read several articles about the advantages of the composition over inheritance. Their authors said that you can always replace inheritance with composition (to be precise, they say they ...